[Amazon SageMaker] 商品棚の品切れを検出してみました
1 はじめに
CX事業本部の平内(SIN)です。
制度の高い物体検出モデルを作成するには、質の良い大量のデータセットが必要です。
商品棚に置かれている多数の商品(また、パッケージは定期的に更新されたりする)のデータセットを作成するとなると、非常にコストの高い作業となる事は容易に想像出来ます。
今回は、商品自体ではなく、商品が品切れとなった時の「背景」を学習させることで、少ない画像で、品切れ状態を検出するモデルを作成してみました。
最初に動作している状況です。品切れとなった部分が検出できている事を確認できます。
2 元データ
元データとして撮影した画像は、以下のようなものです。
(1) 商品がない状態
照明の加減を変化させて、5枚程度撮影しました。
(2) 商品がある状態
合成時に背景とするためのもので、こちらも照明の加減を変化させて20枚程度撮影しました。
3 品切れの背景のデータセット
「商品がない状態の画像」から、1個商品分の背景を切り取ります。
プレビューで表示して、ドラッグで「選択」してCommand+C、Command+Nで簡単に切りとし画像は作成できます。
これを繰り返して、30枚の画像を切り出しました。
4 合成
配置する「品切れの背景」と、背景となる「商品がある状態」をランダムに合成し、データセットを作成しています。
アフィン変換して合成する手法は、以前のものと同じですが、今回は、オブジェクトの回転(Role)はせず、また、大きさも、カメラ画角に対して妥当な長方形となるようにしました。
これは、下記のような商品の余白に見える、「背景」を検出しないようになるのでは?と考えたためです。
作成されたGroundTruthの形式の3000枚のデータセットの画像です。
5 学習
学習は、Amazon SageMakerの組み込みアルゴリズム(物体検出)で行っています。
6 最後に
「品切れの背景」だと、すべての商品を検出するより、格段に低コストで検出できるかも知れません。
商品棚にマーカーなどがあれば、どの棚で、「品切れ」となっているのかを通知するような事も可能かもしれません。